<?php
class TestModeloTipoContenidoKakoon extends TestPojos
{
    public function __construct($name)
    {
        parent::__construct ($name);

        $GLOBALS["TIPOS_HOME"] = dirname(__FILE__) .DS ."tipos". DS;
    }

    public function testInstancia()
    {
        $instancia = new ModeloTipoContenidoKakoon();

        $this->assert(($instancia instanceof ModeloTipoContenidoKakoon), "1. instancia");
    }

    public function testGetListado()
    {
        $listado  = ModeloTipoContenidoKakoon::getListado();
        $control1 = (count ($listado) == 1);
        $control2 = (array_shift($listado) == "tipo1");

        $this->assert($control1, "1. getListado");
        $this->assert($control2, "2. getListado");
    }

    public function testRecuperaTipo()
    {
        $tipo1    = ModeloTipoContenidoKakoon::recuperaTipo ("tipo1");
        $tipo2    = ModeloTipoContenidoKakoon::recuperaTipo ("tiponulo");
        $control1 = ($tipo1 instanceof TipoContenidoKakoon);
        $control2 = (is_null($tipo2));

        $this->assert($control1, "1. recuperaTipo");
        $this->assert($control2, "2. recuperaTipo");
    }

    public function testGetSectores()
    {
        $tipo     = ModeloTipoContenidoKakoon::recuperaTipo ("tipo1");
        $sectores = $tipo->getSectores();
        $sector   = $sectores[0];
        $control1 = ($tipo instanceof TipoContenidoKakoon);
        $control2 = (count($sectores) == 1);
        $control3 = (Tipo1_TipoKakoon_Modelo::SECTOR_TIPO   == $sector->getTipo());
        $control4 = (Tipo1_TipoKakoon_Modelo::SECTOR_NOMBRE == $sector->getNombre());
        $control5 = ($sector instanceof SectorKakoon);

        $this->assert($control1, "1. getSectores");
        $this->assert($control2, "2. getSectores");
        $this->assert($control3, "3. getSectores");
        $this->assert($control4, "4. getSectores");
        $this->assert($control5, "5. getSectores");
    }

    public function testGetXHTML()
    {
        $contenido = new ContenidoKakoon($this->accesoBD);
        $contenido->setPropiedad(SeccionKakoon::CLAVE_PRIMARIA, 1);
        $contenido->setPropiedad("tipo",                      	"tipo1");
        $contenido->setPropiedad("titulo",                      "el titulo");
        $contenido->setPropiedad("posicion",                    1);
        $contenido->registraPosicion();
        $contenido->consolida();
        
        $elemento1 = new ElementoKakoon($this->accesoBD);
        $elemento1->setPropiedad(ContenidoKakoon::CLAVE_PRIMARIA, $contenido->getIdentificador());
        $elemento1->setPropiedad("sector",                        Tipo1_TipoKakoon_Modelo::SECTOR_NOMBRE);
        $elemento1->setPropiedad("naturaleza",                    ConstantesKakoon::ELEMENTO_LITERAL);
        $elemento1->registraValor("el valor literal");
        $elemento1->consolida();

        $xhtml = ModeloTipoContenidoKakoon::getXHTML ($contenido);

        $control1 = ("el valor literal" == $xhtml);
        
        $this->assert($control1, "1. getXHTML");
        
        $contenido->purga();
        $elemento1->purga();
    }
}
?>